package cn.doitedu.day04

import cn.doitedu.day01.utils.SparkUtil

/**
 * @Date 22.4.1
 * @Created by HANGGE
 * @Description
 */
object C17_转换算子_Join {
  def main(args: Array[String]): Unit = {

    val sc = SparkUtil.getSc
    // 要求每个分区中的元素的个数一致的
    // 所有的数据个数一致
    // 两个RDD的分区数一致  分区内的数据个数一致
    val rdd1 = sc.makeRDD(List("办公用品" , "生活用品" , "精品箱包" ,"精品男装","精品女装"),1)
    val rdd2 = rdd1.zipWithIndex()
    val rdd3 = sc.makeRDD(List(("精品箱包",88) , ("生活用品",99) , ("办公用品",44) ,("精品男装",889)),1)
    //  处理的RDD必须是[K ,V]的数据类型  相同的key就会关联
    // 返回的是关联上的数据   没有关联上的数据丢
    val res = rdd2.join(rdd3)
    // leftOuterJoin以调用者RDD为依据会显示RDD2中的所有的元素  没有join上的 None
    // 类比Mysql
    val res2 = rdd2.leftOuterJoin(rdd3)
    rdd3.rightOuterJoin(rdd2).foreach(println)
   // res2.foreach(println)

  }
}
